<script src="../js/equal.js"></script>
<script>
  // 1
  {
    function fn1({ id }, { name }) {
      console.assert(name === 'Wolfram', `1. name === 'Wolfram' 不成立`)
    }
    const user = { name: 'Wolfram', id: 42 }
    fn1(user)
  }
  // 2
  {
    function fn2([{ name }]) {
      console.assert(name === 'Alice', `2. name === 'Alice' 不成立`)
    }
    const users = [{ name: 'nobody' }, { name: 'Alice', id: 42 }]
    fn2(users)
  }
  // 3
  {
    function fn3(id, name = 'Bobby') {
      console.assert(id === 23, `3. id === 23 不成立`)
      console.assert(name === 'Bob', `name === 'Bob' 不成立`)
    }
    fn3(23)
  }
  // 4
  {
    const defaultUser = { id: 23, name: 'Joe' }
    function fn4([user]) {
      console.assert(equal(user, defaultUser), `4. equal(user, defaultUser) 不成立`)
    }
    fn4([])
  }
  // 5
  {
    function fn5(id, [arr], { obj }) {
      console.assert(id = 1, `5-1. id = 1 不成立`)
      console.assert(arr = 2, `5-2. arr = 2 不成立`)
      console.assert(obj = 3, `5-3. obj = 3 不成立`)
    }
    fn5(void 0, [], {})
  }
</script>
